package cn.feizhu.aimarket.ai.client;


import jakarta.annotation.Resource;
import lombok.Data;
import org.springframework.ai.chat.client.ChatClient;
import org.springframework.ai.chat.model.ChatModel;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Data
@Configuration
public class HumanResultClientFactory {

    /**
     * TODO 其实后期可以根据之前的内容细化用户具体的问题，这里直接先写死直接返回一种情况
     */
    private static final String SYSTEM_MESSAGE = """
            你是一个智能路由，你需要判断用户是否同意目前大纲生成
            注意你只可以返回下面两种情况
            如果用户同意大纲那么返回 APPROVED
            如果用户不同意大纲那么返回 NEEDS_REVISION
            """;

    @Resource
    private ChatModel dashscopeChatModel;

    /**
     * 提供默认的Bean
     */
    @Bean
    public ChatClient humanResultClient() {
        return createHumanResultClient();
    }

    // TODO 如果客户端无法实现对话隔离用这个
    public ChatClient createHumanResultClient() {
        return ChatClient
                .builder(dashscopeChatModel)
                .defaultSystem(SYSTEM_MESSAGE)
                .build();
    }

}
